<?php
namespace Orqlog\Yacampaign\Domain\Service;

use Orqlog\Yacampaign\Domain\Model\AddressInterface;
use Orqlog\Yacampaign\Domain\Model\CampaignInterface;
use Orqlog\Yacampaign\Domain\Model\JoinRecordInterface;

interface UserServiceInterface 
{
    
    public function getAddressesForUser(int $userId):array;

    public function addAddress(int $userId, array $addressData):void;

    public function removeAddress(int $userId, int $addressId):void;
    
    public function getDefaultAddressForUser(int $userId):?AddressInterface;

    public function getJoinRecords(int $campaignId, int $userId):array;

    public function joinCampaign(int $campaignId, int $userId):void;
}